<?php namespace module\button\controller;

use houdunwang\request\Request;
use houdunwang\wechat\WeChat;
use module\HdController;
use system\model\Button as ButtonModel;

class Button extends HdController
{

    public function index()
    {
        $field = ButtonModel::get();
        return $this->template('', compact('field'));
    }

    //添加回复
    public function post()
    {
        $id = Request::get('id');
        $model = ButtonModel::find($id) ?: new ButtonModel();
        if (IS_POST) {
            //p($_POST);die;
            $post = Request::post();
            if ($id) {
                $post['state'] = 0;
            }
            $model->save($post);
            return $this->setRedirect(url('button.index'))->success('操作成功');
        }
        //这里需要特殊考虑添加，在模板页面中button对应的就不存在，js报错
        if (!$id) {
            $model = ['title' => '', 'content' => '[]'];
        }
        return $this->template('', compact('model'));
    }

    /**
     * 删除
     *
     */
    public function del()
    {
        $id = Request::get('id');
        //p($id);die;
        //删除回复内容
        $model = ButtonModel::find($id);
        $model->destory();
        //成功提示
        return $this->setRedirect(url('button.index'))->success('操作成功');

    }

    /**
     *  微信菜单推送
     */
    public function send()
    {
        //1.接收get参数
        $id = Request::get('id');
//		p($id);
        //2.根据id在数据库里找到想对应的数据
        $data = ButtonModel::find($id)->content;
        //3.将接收到的数据转为 button开头的数组形式
        $button['button'] = json_decode($data, true);
//		p($button);
//		p($data);
        //4.微信菜单推送操作
        $res = WeChat::instance('button')->create($button);
        // 执行的放回结果为 0 ， OK .
//		p($res);
        //5.
        if ($res['errcode'] == 0) {
            //0 为成功 ，成功操作
            //进行状态修改
            Db::table('button')->where("id", $id)->update(['state' => 1]);
            //将其他的推送状态修改为0
            Db::table('button')->where("id", '<>', $id)->update(['state' => 0]);
            //成功提示语
            return $this->setRedirect(url('button.index'))->success('菜单推送成功');
        } else {
            //else 为失败 ，失败操作
            return $this->error('错误码：' . $res['errcode'] . '；错误消息' . $res['errmsg']);
        }
    }


}